package com.big.codegen.domain.dto;

import com.big.common.core.domain.dto.BaseDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.List;

/**
 * 代码生成表配置数据传输对象
 *
 * @author 山归岿
 * @create 2025-01-03
 */
@EqualsAndHashCode(callSuper = true)
@Data
@Schema(description = "代码生成表配置数据传输对象")
public class CodegenTableConfigDTO extends BaseDTO {

    /**
     * 数据源ID
     */
    @Schema(description = "数据源ID")
    private String datasourceId;

    /**
     * 表名
     */
    @Schema(description = "表名")
    private String tableName;

    /**
     * 表注释
     */
    @Schema(description = "表注释")
    private String tableComment;

    /**
     * 实体类名
     */
    @Schema(description = "实体类名")
    private String entityName;

    /**
     * 包名
     */
    @Schema(description = "包名")
    private String packageName;

    /**
     * 生成路径
     */
    @Schema(description = "生成路径")
    private String generatePath;

    /**
     * 作者
     */
    @Schema(description = "作者")
    private String author;

    /**
     * 表字段配置JSON
     */
    @Schema(description = "表字段配置JSON")
    private String columnsConfig;

    /**
     * 生成选项JSON
     */
    @Schema(description = "生成选项JSON")
    private String generateOptions;

    /**
     * 状态：0-草稿，1-已保存
     */
    @Schema(description = "状态：0-草稿，1-已保存")
    private Integer status;

    /**
     * 备注
     */
    @Schema(description = "备注")
    private String remark;



    @Schema(description = "字段列表")
    List<ColumnDTO> columns;
}